/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package facade;

import entity.Empresa;
import entity.Estadistica;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 *
 * @author ari
 */
@Stateless
public class EmpresaFacade extends AbstractFacade<Empresa> implements EmpresaFacadeLocal {
    @PersistenceContext(unitName = "BolsaValorWeb-ejbPU")
    private EntityManager em;

    static final SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");

    protected EntityManager getEntityManager() {
        return em;
    }

    public EmpresaFacade() {
        super(Empresa.class);
    }

    @Override
    public void addEmpresa(String empresa, double venta, double compra) {
        Empresa emp;
        String fecha = format.format(new Date());
        
        try{
            emp = em.createQuery("SELECT e FROM Empresa e JOIN e.estadistica i WHERE e.name = :empresa AND i.fecha = :fecha", Empresa.class)
                    .setParameter("empresa", empresa)
                    .setParameter("fecha", fecha)
                    .getSingleResult();
            
            emp.setCompras(emp.getCompras() + compra);
            emp.setVentas(emp.getVentas() + venta);
            
            edit(emp);
        } catch(Exception e) {
            Estadistica est = em.createQuery("SELECT e FROM Estadistica e WHERE e.fecha = :fecha", Estadistica.class)
                    .setParameter("fecha", fecha)
                    .getSingleResult();
            
            emp = new Empresa();
            emp.setName(empresa);
            emp.setEstadistica(est);
            emp.setCompras(compra);
            emp.setVentas(venta);
            
            create(emp);
        }
        
    }
    
}
